/*************************/
/** 仅支持渲染进程引入使用 **/
/************************/

import { onMounted } from 'vue';

/**
 * Vue onMounted 周期函数封装
 *
 * 周期回调函数只能在 setup 函数内执行，因此才封装的
 */
export class VueMountedCycle {
    callbackList: Array<() => void>;

    constructor() {
        this.callbackList = [];
    }

    push(cb: () => void): void {
        this.callbackList.push(cb);
    }

    trigger(): void {
        onMounted(() => {
            this.callbackList.forEach(cb => cb());
        });
    }
}
